/*
    马拉松系列红外传感器
*/

#ifndef SENSOR_H
#define SENSOR_H

#include <QString>
#include <QList>

class Sensor
{
public:
    Sensor();

    void    decodeResponse(QByteArray buf);
    QString set_display_mode_mr(int mode);
    QString set_emissisity(double emis);
    QString set_slope(double slope);
    QString set_temp_units(QString units);
    QString set_peak_hold_time(double pkhtime);
    QString set_poll_burst_mode(QString mode);
    QString set_attenaution(int atten);
    QString restore_factory_defaults();

    QString get_display_mode_mr();
    QString get_emissisity();
    QString get_slope();
    QString get_temp_units();
    QString get_peak_hold_time();
    QString get_poll_burst_mode();
    QString get_identify_unit();
    QString get_sensor_sn();
    QString get_attenaution();
    QString get_temperature();
    QString get_internal_ambient();

private:
    QString display_mode_mr = "2";      // 单、双色工作模式。1 OR 2; ?M; M=1; !M1
    QString emissisity = "1.00";        // 发射率，1C模式需要设置。0.10..1.00; ?E; E=0.95; !E0.95
    QString slope = "1.000";            // 坡度，2C模式需要设置。0.850..1.150; ?S; S=0.850; !S0.850
    QString temp_units = "C";           // 温度单位（摄氏/华氏）。C OR F; ？U; U=C; !UC
    QString peak_hold_time = "1.5";     // 峰值保持时间。nnn.n  0..299.9; ?P; P=005.6; !P005.6
    QString poll_burst_mode = "P";      // 传输模式B/P  V=P !VP
    QString identify_unit = "MR1S";     // 传感器型号 ？XU; ; !XUMR1S
    QString sensor_sn = "B03C115";      // 传感器序列号。Xnnnnnn ？XV；；!XVB03C115
    QString attenaution = "95";         // 衰减。nn 0-99%;  ?Z; Z=95; !Z95
    QString temperature;                // 测量到的温度
    QString internal_ambient = "040";   // 传感器内部温度
};

#endif // SENSOR_H
